package com.autumn.platform.dao.dialect;

import org.springframework.data.domain.Pageable;

public interface IDialect {

    /**
     * 获取数据产品ID
     * 
     * @return
     */
    public String getDatabaseId();

    /**
     * 是否匹配databaseId
     * 
     * @param databaseId
     * @return
     */
    public boolean match(String databaseId);

    /**
     * 生成计算总记录数的SQL
     * 
     * @param sql 原始SQL
     * @return 计算总记录数的SQL
     */
    public String getTotalSql(String sql);

    /**
     * 获取分页和排序的SQL
     * 
     * @param sql 原始SQL
     * @param pageable 分页对象
     * @return
     */
    public String getPageableSql(String sql, Pageable pageable);
}
